package nju.software.xkxt.service.implement;

import java.util.ArrayList;
import java.util.List;

import nju.software.xkxt.data.dao.CourseDao;
import nju.software.xkxt.data.dataobject.CourseDO;
import nju.software.xkxt.service.CourseService;
import nju.software.xkxt.service.model.CourseModel;

public class CourseServiceImpl implements CourseService {
	CourseDao courseDao;

	public List<CourseModel> getCourse() {
		List<CourseModel> courseModels = new ArrayList<CourseModel>();
		List<CourseDO> courseDOs = courseDao.getCourse();
		for (CourseDO courseDO : courseDOs) {
			CourseModel courseModel = new CourseModel(courseDO);
			courseModels.add(courseModel);
		}
		return courseModels;
	}

	public void setCourseDao(CourseDao courseDao) {
		this.courseDao = courseDao;
	}

	@Override
	public boolean delete(int courseId) {
		boolean b = courseDao.deleteCourse(courseId);
		return b;
	}
	@Override
	public long addCourse(CourseModel courseModel) {
		int maxbh = courseDao.getMaxID();
		CourseDO courseDO = new CourseDO(courseModel);
		maxbh++;
		courseDO.setCId(maxbh);
		courseDao.addCourse(courseDO);
		
		return maxbh;
	}

	@Override
	public boolean updateCourse(CourseModel courseModel) {
		CourseDO courseDO = new CourseDO(courseModel);
		return courseDao.updateCourse(courseDO);
	}

	@Override
	public CourseModel getCourseById(int c_id) {
		CourseDO courseDO = courseDao.getCourseById(c_id);
		CourseModel courseModel = new CourseModel(courseDO);
		return courseModel;
	}

	@Override
	public List<CourseModel> getCourseByTId(int t_id) {
		List<CourseModel> courseModels = new ArrayList<CourseModel>();
		List<CourseDO> courseDOs = courseDao.gerCourseByTid(t_id);
		for (CourseDO courseDO : courseDOs) {
			CourseModel courseModel = new CourseModel(courseDO);
			courseModels.add(courseModel);
		}
		return courseModels;
	}

}
